﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GestionadorBaseDatos;
using CapaNegocios;
using CRUD.DAO;
using AdministradorSpring;

using Spring.Context.Support;
using Spring.Data;
using Spring.Context;


namespace CapaGestion.Spring
{
    /// <summary>
    /// Gestionador que permite administrar las clases del sistema
    /// </summary>
    public static class AdministradorGestion
    {

        /// <summary>
        /// Devuelve el objeto que permite gestionar las apuestas
        /// </summary>
        /// <returns></returns>
        public static IGestionApuesta getGestionarApuesta()
        {
            return (IGestionApuesta)AppContext.Instance.GetObject("GestionarApuestas");
        }

        /// <summary>
        /// Devuelve el objeto que permite gestionar a las categorias
        /// </summary>
        /// <returns></returns>
        public static IGestionCategoria getGestionarCategoria()
        {
            return (IGestionCategoria)AppContext.Instance.GetObject("GestionarCategorias");
        }

        /// <summary>
        /// Devuelve el objeto que permite gestionar a los eventos
        /// </summary>
        /// <returns></returns>
        public static IGestionEvento getGestionarEvento()
        {
            return (IGestionEvento)AppContext.Instance.GetObject("GestionarEventos");
        }

        /// <summary>
        /// Devuelve el objeto que permite gestionar las formas de pago
        /// </summary>
        /// <returns></returns>
        public static IGestionFormaPago getGestionarFormaPago()
        {

            return (IGestionFormaPago)AppContext.Instance.GetObject("GestionarFormasPago");
        }

        /// <summary>
        /// Devuelve el objeto que permite gestionar el mantenimiento de los pagos
        /// </summary>
        /// <returns></returns>
        public static IGestionMantenimientoPago getGestionarMantenimientoPago()
        {
            return (IGestionMantenimientoPago)AppContext.Instance.GetObject("GestionarMantenimientoPagos");
        }

        /// <summary>
        /// Devuelve el objeto que permite gestionar el mantenimiento de perfil de un usuario
        /// </summary>
        /// <returns></returns>
        public static IGestionMantenimientoUsuario getGestionarMantenimientoUsuario()
        {
            return (IGestionMantenimientoUsuario)AppContext.Instance.GetObject("GestionarMantenimientoUsuarios");
        }

        /// <summary>
        /// Devuelve el objeto que permite gestionar  los pagos
        /// </summary>
        /// <returns></returns>
        public static IGestionPago getGestionarPago()
        {
            return (IGestionPago)AppContext.Instance.GetObject("GestionarPagos");
        }
        /// <summary>
        /// Devuelve el objeto que permite gestionar a los participantes de un evento
        /// </summary>
        /// <returns></returns>
        public static IGestionParticipante getGestionarParticipante()
        {
            return (IGestionParticipante)AppContext.Instance.GetObject("GestionarParticipantes");
        }

        /// <summary>
        /// Devuelve el objeto que permite gestionar a las proporciones de los participantes
        /// </summary>
        /// <returns></returns>
        public static IGestionProporcion getGestionarProporcion()
        {
            return (IGestionProporcion)AppContext.Instance.GetObject("GestionarProporciones");
        }

        /// <summary>
        /// Devuelve el objeto que permite gestionar a los usuarios
        /// </summary>
        /// <returns></returns>
        public static IGestionUsuario getGestionarUsuario()
        {
            return (IGestionUsuario)AppContext.Instance.GetObject("GestionarUsuarios");
        }
    }
}
